package cn.topevery.garden.entity.po;

import cn.topevery.garden.entity.serializer.GeometrySerializer;
import cn.topevery.garden.framework.base.BaseEntity;
import com.alibaba.fastjson.annotation.JSONField;
import hw.topevery.framework.annotation.DbTable;
import hw.topevery.framework.annotation.DbTableField;
import hw.topevery.framework.dto.PointDto;
import hw.topevery.framework.enums.DbTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import org.locationtech.jts.geom.Geometry;

import java.util.List;

/**
 * @author code-generate
 * @date 2021-08-06
 */
@DbTable(tableName = "t_park")
public class Park extends BaseEntity {
    /**
     * 公园编号
     */
    @DbTableField(columnName = "c_code", dbType = DbTypeEnum.VARCHAR)
    public String code;

    /**
     * 公园名称
     */
    @DbTableField(columnName = "c_name", dbType = DbTypeEnum.VARCHAR)
    public String name;

    /**
     * 简称
     */
    @DbTableField(columnName = "c_name_short", dbType = DbTypeEnum.VARCHAR)
    public String nameShort;

    /**
     * 公园类别 t_sys_class.c_id
     */
    @DbTableField(columnName = "c_class_big_id", dbType = DbTypeEnum.VARCHAR)
    public Integer classBigId;

    /**
     * 公园类别名称
     */
    @DbTableField(columnName = "c_class_big_name", dbType = DbTypeEnum.VARCHAR)
    public String classBigName;

    /**
     * 公园中类 t_sys_class.c_id
     */
    @DbTableField(columnName = "c_class_middle_id", dbType = DbTypeEnum.VARCHAR)
    public Integer classMiddleId;

    /**
     * 公园中类名称
     */
    @DbTableField(columnName = "c_class_middle_name", dbType = DbTypeEnum.VARCHAR)
    public String classMiddleName;

    /**
     * 公园小类 t_sys_class.c_id
     */
    @DbTableField(columnName = "c_class_small_id", dbType = DbTypeEnum.INTEGER)
    public Integer classSmallId;

    /**
     * 公园小类名称
     */
    @DbTableField(columnName = "c_class_small_name", dbType = DbTypeEnum.VARCHAR)
    public String classSmallName;

    /**
     * 所属行政区Id t_sys_map.c_id
     */
    @DbTableField(columnName = "c_distract_id", dbType = DbTypeEnum.VARCHAR)
    public String distractId;

    /**
     * 所属行政区
     */
    @DbTableField(columnName = "c_distract_name", dbType = DbTypeEnum.VARCHAR)
    public String distractName;

    /**
     * 街道Id
     */
    @DbTableField(columnName = "c_street_id", dbType = DbTypeEnum.VARCHAR)
    public String streetId ;

    /**
     * 街道名称
     */
    @DbTableField(columnName = "c_street_name", dbType = DbTypeEnum.VARCHAR)
    public String streetName ;

    /**
     * 社区Id
     */
    @DbTableField(columnName = "c_community_id", dbType = DbTypeEnum.VARCHAR)
    public String communityId ;

    /**
     * 社区名称
     */
    @DbTableField(columnName = "c_community_name", dbType = DbTypeEnum.VARCHAR)
    public String communityName ;

    /**
     * 公园地址
     */
    @DbTableField(columnName = "c_address", dbType = DbTypeEnum.VARCHAR)
    public String address;

    /**
     * 公园简介
     */
    @DbTableField(columnName = "c_synopsis", dbType = DbTypeEnum.VARCHAR)
    public String synopsis;

    /**
     * 建设开园时间
     */
    @DbTableField(columnName = "c_open_date", dbType = DbTypeEnum.VARCHAR)
    public String openDate;

    /**
     * 公园面积（公顷）
     */
    @DbTableField(columnName = "c_measure", dbType = DbTypeEnum.FLOAT)
    public Float measure;

    /**
     * 绿化面积（公顷）
     */
    @DbTableField(columnName = "c_gre_measure", dbType = DbTypeEnum.FLOAT)
    public Float greMeasure;

    /**
     * 绿地率（%）
     */
    @DbTableField(columnName = "c_gre_rate", dbType = DbTypeEnum.FLOAT)
    public Float greRate;

    /**
     * 山体面积（公顷）
     */
    @DbTableField(columnName = "c_mountain_measure", dbType = DbTypeEnum.FLOAT)
    public Float mountainMeasure;

    /**
     * 海拔高度（米）
     */
    @DbTableField(columnName = "c_altitude", dbType = DbTypeEnum.FLOAT)
    public Float altitude;

    /**
     * 公园水系（公顷）
     */
    @DbTableField(columnName = "c_water_measure", dbType = DbTypeEnum.FLOAT)
    public Float waterMeasure;

    /**
     * 水系名称
     */
    @DbTableField(columnName = "c_water_name", dbType = DbTypeEnum.VARCHAR)
    public String waterName;

    /**
     * 公园出入口数量
     */
    @DbTableField(columnName = "c_door_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer doorCnt;

    /**
     * 管理模式Id t_sys_dict.c_id
     */
    @DbTableField(columnName = "c_mgr_pattern_id", dbType = DbTypeEnum.INTEGER)
    public Integer mgrPatternId;

    /**
     * 管理模式
     */
    @DbTableField(columnName = "c_mgr_pattern_name", dbType = DbTypeEnum.VARCHAR)
    public String mgrPatternName;

    /**
     * 管理单位 t_sys_dept.c_id
     */
    @DbTableField(columnName = "c_mgr_dept_id", dbType = DbTypeEnum.VARCHAR)
    public String mgrDeptId;

    public String mgrDeptName;

    /**
     * 管理用房数量
     */
    @DbTableField(columnName = "c_mgr_house_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer mgrHouseCnt;

    /**
     * 管理用房面积（平方米）
     */
    @DbTableField(columnName = "c_mgr_house_measure", dbType = DbTypeEnum.FLOAT)
    public Float mgrHouseMeasure;

    /**
     * 场馆名
     */
    @DbTableField(columnName = "c_venue_name", dbType = DbTypeEnum.VARCHAR)
    public String venueName;

    /**
     * 场馆数量
     */
    @DbTableField(columnName = "c_venue_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer venueCnt;

    /**
     * 游客服务中心(处)
     */
    @DbTableField(columnName = "c_service_center_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer serviceCenterCnt;

    /**
     * 公厕（个）
     */
    @DbTableField(columnName = "c_toilets_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer toiletsCnt;

    /**
     * 停车场（处）
     */
    @DbTableField(columnName = "c_car_park_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer carParkCnt;

    /**
     * 充电桩（个）
     */
    @DbTableField(columnName = "c_charging_pile_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer chargingPileCnt;

    /**
     * 垃圾分类点/垃圾转运站（个）
     */
    @DbTableField(columnName = "c_garbage_station_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer garbageStationCnt;

    /**
     * 母婴室（个）
     */
    @DbTableField(columnName = "c_mother_baby_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer motherBabyCnt;

    /**
     * 驿站（个）
     */
    @DbTableField(columnName = "c_post_station_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer postStationCnt;

    /**
     * 场馆面积
     */
    @DbTableField(columnName = "c_venue_measure", dbType = DbTypeEnum.FLOAT)
    public Float venueMeasure;

    /**
     * 自然教育中心(个）
     */
    @DbTableField(columnName = "c_education_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer educationCnt;

    /**
     * 服务点(个）
     */
    @DbTableField(columnName = "c_service_point_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer servicePointCnt;

    /**
     * 自动售货机/小卖部(个)
     */
    @DbTableField(columnName = "c_snack_bar_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer snackBarCnt;

    /**
     * 广场数（处）
     */
    @DbTableField(columnName = "c_square_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer squareCnt;

    /**
     * 广场面积(平方米）
     */
    @DbTableField(columnName = "c_square_measure", dbType = DbTypeEnum.FLOAT)
    public Float squareMeasure;

    /**
     * 活动场所(处）
     */
    @DbTableField(columnName = "c_activity_place_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer activityPlaceCnt;

    /**
     * 活动场所面积(平方米）
     */
    @DbTableField(columnName = "c_activity_place_measure", dbType = DbTypeEnum.FLOAT)
    public Float activityPlaceMeasure;

    /**
     * 休息亭台（含景观平台 座）
     */
    @DbTableField(columnName = "c_pavilion_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer pavilionCnt;

    /**
     * 桥（座）
     */
    @DbTableField(columnName = "c_bridge_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer bridgeCnt;

    /**
     * 路数量（条）
     */
    @DbTableField(columnName = "c_road_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer roadCnt;

    /**
     * 路长度（米）
     */
    @DbTableField(columnName = "c_road_length", dbType = DbTypeEnum.FLOAT)
    public Float roadLength;

    /**
     * 路宽度（米）
     */
    @DbTableField(columnName = "c_road_width", dbType = DbTypeEnum.FLOAT)
    public Float roadWidth;

    /**
     * 特色花卉
     */
    @DbTableField(columnName = "c_special_flowers", dbType = DbTypeEnum.VARCHAR)
    public String specialFlowers;

    /**
     * 特色植被
     */
    @DbTableField(columnName = "c_special_cover", dbType = DbTypeEnum.VARCHAR)
    public String specialCover;

    /**
     * 濒危珍惜植物
     */
    @DbTableField(columnName = "c_endangered_botany", dbType = DbTypeEnum.VARCHAR)
    public String endangeredBotany;

    /**
     * 古树名木种类
     */
    @DbTableField(columnName = "c_tree_type", dbType = DbTypeEnum.VARCHAR)
    public String treeType;

    /**
     * 古树名木数量
     */
    @DbTableField(columnName = "c_tree_cnt", dbType = DbTypeEnum.INTEGER)
    public Integer treeCnt;

    /**
     * 自然风光
     */
    @DbTableField(columnName = "c_scenery", dbType = DbTypeEnum.VARCHAR)
    public String scenery;

    /**
     * 历史文化信息
     */
    @DbTableField(columnName = "c_culture", dbType = DbTypeEnum.VARCHAR)
    public String culture;

    /**
     * 范围 bd09
     */
    @DbTableField(columnName = "c_geom_bd09", dbType = DbTypeEnum.OTHER)
    public Geometry geomBd09;

    /**
     * 范围  wgs84
     */
    @DbTableField(columnName = "c_geom_wgs", dbType = DbTypeEnum.OTHER)
    public Geometry geomWgs;

    /**
     * 范围 大地2000
     */
    @DbTableField(columnName = "c_geom_2000", dbType = DbTypeEnum.OTHER)
    public Geometry geom2000;

    /**
     * 范围  火星
     */
    @DbTableField(columnName = "c_geom_gcj02", dbType = DbTypeEnum.OTHER)
    public Geometry geomGcj02;

    /**
     * 范围 百度魔卡托平面
     */
    @DbTableField(columnName = "c_geom_mkt", dbType = DbTypeEnum.OTHER)
    public Geometry geomMkt;

    /**
     * 标段id
     */
    @DbTableField(columnName = "c_section_id", dbType = DbTypeEnum.INTEGER)
    public Integer sectionId;

    /**
     * 标段简称
     */
    @DbTableField(columnName = "c_section_name", dbType = DbTypeEnum.VARCHAR)
    public String sectionName;

    /**
     * 最大容纳人数
     */
    @DbTableField(columnName = "c_person_max", dbType = DbTypeEnum.INTEGER)
    public Integer personMax;

    /**
     * 是否收费
     */
    @DbTableField(columnName = "c_is_charge", dbType = DbTypeEnum.BIT)
    public Boolean isCharge;

    /**
     * 开发开始时间
     */
    @DbTableField(columnName = "c_begin_time", dbType = DbTypeEnum.VARCHAR)
    public String beginTime;

    /**
     * 开发结束时间
     */
    @DbTableField(columnName = "c_end_time", dbType = DbTypeEnum.VARCHAR)
    public String endTime;

    /**
     * 绿道长度（米）
     */
    @DbTableField(columnName = "c_greenway_length", dbType = DbTypeEnum.FLOAT)
    public Float greenwayLength;

    /**
     * 河道长度（米）
     */
    @DbTableField(columnName = "c_channel_length", dbType = DbTypeEnum.FLOAT)
    public Float channelLength;


    @ApiModelProperty(value = "范围点信息")
    public List<List<PointDto>> mapRangesPoints;

    @ApiModelProperty(value = "文件")
    public List<ParkFile> fileList;
}
